import { fileURLToPath, URL } from 'node:url'

import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import path from 'path'

// https://vite.dev/config/
export default defineConfig({
  plugins: [vue()],
  resolve: {
    alias: {
      '@': path.resolve(__dirname, './src')
    }
  },
  server: {
    port: 5173,
    strictPort: true,  // 如果端口被占用，则直接退出
    proxy: {
      '/api': {  // 获取路径中包含了/api的请求
        target: 'http://localhost:9000',  // 后台服务所在的源
        changeOrigin: true,  // 修改源
        rewrite: (path) => path.replace(/^\/api/, ''),  // /api替换为''
        secure: false,  // 如果是https接口，需要配置这个参数
        ws: true,  // 是否代理websockets
        configure: (proxy, options) => {
          // 配置代理的一些特殊选项
          proxy.on('proxyRes', (proxyRes, req, res) => {
            // 删除cookie domain
            if (proxyRes.headers['set-cookie']) {
              proxyRes.headers['set-cookie'] = proxyRes.headers['set-cookie'].map(cookie =>
                cookie.replace(/Domain=[^;]+;/, '')
              );
            }
          });
        }
      }
    }
  }
})
